ACPI (Advanced Configuration and Power Interface) is an open industry specification that defines a flexible and extensible interface for power management. The interface enables and supports power management through improved hardware and operating system coordination. ACPI allows the operating system to control the power states of many ACPI-compliant hardware components, and/or to pass information to and from some hardware components, such as the temperature of a thermal sensor or the power remaining in a battery.
Because components of the ACPI system reside in both hardware and software, the efficient development and testing of an ACPI system is difficult. For instance, debugging an ACPI-compliant computer system requires fully-functional hardware components compatible with the ACPI system before the ACPI-compliant software can be thoroughly tested. However, developing hardware or firmware with appropriate and debugged ACPI code to adequately test an ACPI system is a time-consuming and expensive process. Therefore, reliably testing the ACPI system software is difficult until the ACPI hardware is appropriately debugged, which, in turn, requires reliable ACPI software to achieve. This circular dependency makes effective testing and debugging of the ACPI system very difficult, which slows the development of the ACPI system software. Moreover, because the development of the ACPI system software ordinarily follows the development of ACPI hardware, it is difficult to timely incorporate effective support in the ACPI system software for newer ACPI features made available in the ACPI-compliant hardware. Thus, an effective mechanism for adequately testing ACPI software has eluded those skilled in the art.